
#ifndef Vxl_ENGINE
#define Vxl_ENGINE

#include <d3d11.h>
#include <d3dx11.h>
#include <xnamath.h>
#include <vector>

#include "VxlObjects\VxlObject.h"
#include "Cameras\BaseCamera.h"
#include "Cameras\WASDCamera.h"
//#include "VxlObjects\ParticleSystem\ParticleSystemManager.h"

using namespace Drawables;

class VxlEngine
{
public:
	VxlEngine(){};
	~VxlEngine(void);
	VxlEngine(ID3D11Device* device, HWND window, HINSTANCE appInstance, bool useMouse, bool useKeyboard);

	void AddVxl( VxlObject* vo);

	void Draw(float dt);
	void Update(float dt);
	void CleanUp();

	void SetCamera(Cameras::BaseCamera *camera);
	//ParticleSystemManager* GetParticleSystemManager();

private:
	Cameras::WASDCamera *defaultCamera;
	std::vector<VxlObject*>  vxls;
	bool usingMouse;
	bool usingKeyboard;
	//ParticleSystemManager* particleSystemManager;
};

#endif